package models

import "gorm.io/gorm"

type User struct {
	gorm.Model
	Mobile   string `gorm:"type:char(11);comment:手机号" json:"mobile"`
	Password string `gorm:"type:char(32);comment:密码" json:"password"`
}

type UserRealName struct {
	gorm.Model
	UserId   int    `gorm:"type:int(11);comment:用户id" json:"userId"`
	RealName string `gorm:"type:varchar(30);comment:真实姓名" json:"realName"`
	IdCard   string `gorm:"type:char(18);comment:身份证号" json:"idCard"`
}

// 创建用户
func (u *User) Create() error {
	return DB.Debug().Create(&u).Error
}

// 用户查询
func (u *User) GetUser() error {
	return DB.Debug().Where("mobile = ?", u.Mobile).Limit(1).Find(&u).Error
}

// 修改密码
func (u *User) UpdatePassword(newPassword string) error {
	return DB.Debug().Model(User{}).Where("mobile = ?", u.Mobile).Update("password", newPassword).Error
}

// 购物车中查询用户
func (u *User) GetUserId() error {
	return DB.Debug().Where("id = ?", u.ID).Limit(1).Find(&u).Error
}

// 实名认证查询
func (ur *UserRealName) GetUserRealName() error {
	return DB.Debug().Where("user_id = ?", ur.UserId).Limit(1).Find(&ur).Error
}

// 保存实名认证信息
func (ur *UserRealName) Create() error {
	return DB.Debug().Create(&ur).Error
}
